A heterogeneous computing platform (HCP) refers to a data processing system that includes a host processor (host) coupled to one or more other devices through interface circuitry. The devices are architecturally different from the host. The host is capable of offloading processing jobs to the devices. The devices are capable of performing the processing jobs and making the results available to the host. Typically, the host is implemented as a central processing unit. Examples of the devices include, but are not limited to, graphics processing units (GPUs) and digital signal processors (DSPs).
Open Computing Language (OpenCL) is an example of a framework for writing programs that execute on an HCP. An OpenCL application includes host program code and kernel program code. The host program code is compiled to execute on the host. The kernel program code is compiled to execute on a particular type of device. The devices perform processing jobs offloaded from the host through execution of the compiled kernel program code.